package com.siqi.hr.system.custom.dao.intf;

import com.siqi.hr.system.custom.db.builder.intf.DbCreater;
import com.siqi.hr.system.custom.entity.EntityRecord;
import com.siqi.hr.system.custom.entity.FieldRecord;

/**
 * DB操作(也就是实体字段添加)dao接口层
 * date                      2016/8/30.
 * @author                  xiaogq
 * @since JDK1.8.0_12
 */
public interface DbStructureDao {

    /**
     * 创建表以及注册实体字段信息方法
     * @author            xiaogq
     * @param dbCreater
     */
    public int build(DbCreater dbCreater);

    /**
     * 自定义实体添加
     * @author            xiaogq
     * @param entity     实体对象
     */
    public int addEntity(final EntityRecord entity);

    /**
     * 删除自定义实体表信息
     * @author            xiaogq
     * @param entityId     实体id
     */
    public void deleteEntity(Integer entityId);

    /**
     * 添加自定义字段信息
     * @author                  xiaogq
     * @param fieldRecord     字段对象信息
     */
    public void addField(FieldRecord fieldRecord);

    /**
     * 删除表结构字段以及外键关系、注册表中添加字段信息
     * @author                  xiaogq
     * @param fieldRecord     字段对象信息
     */
    public void deleteField(FieldRecord fieldRecord);
}
